<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<style>
    body {
        /* text-align: center; */
    }
</style>

<body>
    <script>
        // for循环
        // 一般用于解决 循环的代码  或者 匹配条件

        // 语法
        // for(表达式1 ; 表达式2 ; 表达式3){
        //       循环体
        // }


        // 一般情况下： 表达式1为 变量声明 （初始化）
        //             表达式2为 逻辑判断
        //             表达式3为 自增或自减运算



        // 执行顺序   
        //      开始 =》 表达式1执行  =》   循环判断 （判断表达式2结果  当结果为真  =》 循环体开始执行  =》 执行表达式3） =》重复  循环判断
        //              （只会执行一次）                              当结果为假  =》 for循环语句结束
        // for (; 0 < 1;) {

        // }


        // for (var i = 0; i < 10; i++) {
        //     console.log(i)
        // }
        // console.log(i)



        // for内部初始化的  一般声明变量 i j k
        //  开始  i = 0 (执行一次)
        // 循环判断    i  < 10 ?  真  =》 console.log(i) =>  i++  => 循环判断
        //   假  =》 循环for结束
        // console.log("大家好")


        //  开始    i = 0 
        //  第一次循环判断    （0）i < 10 ?  真  =》  console.log(0)   =>  i = 1;
        //  第二次循环判断    （1）i < 10 ?  真  =》  console.log(1)   =>  i = 2;
        //  第九次循环判断    （8）i < 10 ?  真  =》  console.log(8)   =>  i = 9;
        //  第十次循环判断    （9）i < 10 ?  真  =》  console.log(9)   =>  i = 10;
        //  第十一循环判断    （10）i <10 ?  假  =》  结束for循环 跳出for循环  继续for后面的代码










        // 使用for循环打印1-100的数字
        // var m = "";
        // for (var a = 1; a <= 100; a++) {
        //     console.log(a)
        // }

        // 案例1:for中的死循环
        // for (var i = 0; true; i++) {
        //     if (i == 10) {
        //         break
        //     }

        //     if (i == 5) {
        //         continue
        //     }
        //     console.log(i)

        // }

        // for (var i = 0; i < 7; i++) {
        //     document.write("*******<br>")
        // }


        // var a = "*";
        // for (var i = 0; i < 7; i++) {
        //     var b = ""
        //     for (var j = 0; j  i; j++) {
        //         b += a
        //     }
        //     b = b + "<br>"
        //     document.write(b)
        // }
        // continue;  //跳出本次循环
        // break;  //跳出for循环语句 代表for语句执行完毕   后面的代码不会执行
        // 案例2: for中的i

        // for (var i = 0; i < 10; i++) {
        //     console.log(i)
        // }
        // console.log(i)


        // 案例3: 计算50以内的奇数累加和
        // 1
        // 3 = 1 + 2
        // 5 = 1 + 2 + 2
        // 7 = 1 + 2 + 2 + 2
        // .....49

        // var sum = 0;
        // for (var i = 1; i < 50; i = i + 2) {
        //     sum = sum + i;
        //     console.log(sum)
        // }
        // console.log(sum)



        // 案例4: 找出30以内除了16和20, 能被4整除的数的累加和


        // for (var i = 0; i < 30; i++) {
        //     if (i != 16 && i != 20 && i % 4 == 0) {
        //         console.log(i)
        //     }
        // }







        // 案例5: 在控制台输出所有的"水仙花数"; 
        // 水仙花:指的是三位数
        //   水仙花的特点:三位数中个位的立方和加上十位上数据的立方和加上百位上的数据的立方和=该数据本身



        // var a, b, c;
        // for (var i = 100; i < 1000; i++) {
        //     a = parseInt(i / 100)   //获取百位的数字
        //     b = parseInt(i / 10) % 10 //获取十位上的数字
        //     c = i % 10 //获取各位上的数字
        //     if (a * a * a + b * b * b + c * c * c == i) {
        //         console.log("水仙花" + i)
        //     }
        // }


        // var a = 2368, b, c, d, e;
        // b = parseInt(a / 1000) // 获取千位
        // c = parseInt(a / 100) % 10  // 获取百位
        // d = parseInt(a / 10) % 10// 获取十位
        // e = a % 10     // 获取个位

        // 获取从1970年1月1号凌晨12点  到现在为值过了多少秒
        // var a = parseInt(+new Date() / 1000)



        // var date = +new Date();
        // var year, mouth, day, hour, second;
        // year = Math.floor(date / 1000 / 60 / 60 / 24 / 365)  // 获取年 
        // mouth = Math.floor(date / 1000 / 60 / 60 / 24 % 365 / 30)  //获取月 
        // day = Math.floor(date / 1000 / 60 / 60 / 24 % 365 % 30)  //获取天

        // hour = Math.floor(date / 1000 / 60 % 60)  //获取小时

        // console.log(hour)
        // second = Math.floor(date / 1000 / 60 / 60 / 24 % 365 % 24)  //获取小时
        // console.log(day)

        // 案例6:公园里有一只猴子和一堆桃子，猴子每天吃掉桃子总数的一半，把剩下一半中扔掉一个坏的。 
        // 到第七天的时候，猴子睁开眼发现只剩下一个桃子。问公园里刚开始有多少个桃子？
        // var result = 1;
        // for (var i = 0; i < 6; i++) {
        //     result = (result + 1) * 2
        // }
        // console.log(result)



        // 案例7: 循环中的continue和break;


        // for (表达式1; 表达式2; 表达式3) {
        //     循环体
        // }



        // var a = 8848.88
        // var b = 0.005
        // console.log(parseInt(a / b) + 1)

        // for (var i = 0; i < 8848.88; i = i + 0.005) {

        // }
        // console.log(i / 0.005)


        // 表达式1 初始值
        // 表达式2 条件判断
        // 表达式3 增量 

        // 执行过程

        // 开始 =》 表达式1执行 （在for循环生命周期只执行一次） 
        // 循环判断  =》  表达式2的结果 为真  =》  执行循环体  =》 执行表达式3  =》循环判断
        //                            为假  =》  跳出for循环 for循环语句执行完毕

        // continue  // 跳出本次循环  
        // break  //跳出 for循环


        // 嵌套for循环


        // 案例8: 在页面上用红色的❤打印7*7的正方形
        // 案例9: 在页面上用红色的❤打印正三角
        // 案例10: 在页面上用红色的❤打印倒三角



        // 案例11: 打印九九乘法表♂'


        // for (var i = 1; i <= 9; i++) {   // i对应第二个乘数
        //     var str = "";
        //     for (var j = 1; j <= i; j++) {  //对应第一个乘数
        //         str += j + "*" + i + "=" + i * j + " "  //拼接字符串
        //     }
        //     document.write(str)
        //     document.write("<br>")
        // }







        // 案例12: 用for循环在页面输出 h1-h6标签，内容为'这是h?标签'

        // for (var i = 1; i <= 6; i++) {
        //     // document.write("<h" + i + ">这是h" + i + "标签</h" + i + ">")
        //     // document.write(`<h${i}>这是h${i}标签</h${i}>`)
        // }




        // 案例13: 统计字符串 "hello world"中'o'和'l'总共出现了多少次   5

        // var str = "hello world  oll"
        // var a = 0;
        // for (var i = 0; i < str.length; i++) {
        //     if (str[i] == "o" || str[i] == "l") {
        //         a++;
        //     }
        // }
        // console.log(a)



        // 案例14: 把字符串 "123hello520"中

        // 每一个数字乘以5，其他不变

        // 组成一个新字符串，输出到控制台


        // var str = "123hello520"
        // var str1 = ''
        // for (var i = 0; i < str.length; i++) {
        //     if (!isNaN(str[i])) {
        //         str1 += str[i] * 5
        //     } else {
        //         str1 += str[i]
        //     }
        // }


        // var str = "123hello520"
        // var str1 = ''
        // for (var i = 0; i < str.length; i++)
        //     isNaN(str[i]) ? str1 += str[i] : str1 += str[i] * 5
        // console.log(str1)




        /*
       *案例1:反转字符串
       *    将"JavaScript"反转成"tpircSavaJ"
       */
        // var str = "javascript"
        // var str1 = ''
        // for (var i = str.length - 1; i >= 0; i--) {
        //     // console.log(str[i])
        //     str1 += str[i]
        // }
        // console.log(str1)



        /*
         *案例2:
         *有字符串var str='abc!123bd',
         *将字符串中的数字用中括号括起来，形成结果：'abc![123]bd'
         */

        // var str = 'abc!123bd';
        // var newStr = '';
        // //第一个数字:开始位置
        // for (var i = 0; i < str.length; i++) {
        //     if (!isNaN(str[i])) {
        //         //是数字
        //         var start = i;
        //         break;
        //     }
        // }
        // //最后一个数字:结束位置
        // for (var i = 0; i < str.length; i++) {
        //     if (!isNaN(str[i])) {
        //         //是数字
        //         var end = i;
        //     }
        // }
        // //拼接
        // for (var i = 0; i < str.length; i++) {
        //     if (i == start) {
        //         newStr += '[' + str[i];
        //     } else if (i == end) {
        //         newStr += str[i] + ']';
        //     } else {
        //         newStr += str[i];
        //     }
        // }
        // console.log(newStr);


        // 案例3:  求任意个数的累加和
        //      步骤1: 弹出输入框询问用户  要输入多少个整数
        //      步骤2: 循环获取用户输入的数累加

        // var len = +prompt("请输入几个数字?")
        // var sum = 0;
        // for (var i = 0; i < len; i++) {
        //     sum += +prompt("请输入第" + (i + 1) + "个整数")
        // }
        // console.log(sum)



        //案例4: 猜数游戏 (while  和  do while两种做法)
        // 1: 默认设置一个谜底数字
        // 2: 弹框输入你猜测的数字:
        // 3:  如果大了，提示"输大啦，请重新输入"
        // 4:  如果小了，提示"输小啦，请重新输入"
        // 5:  如果猜对了，提示"输入正确"



        //案例5:找零
        // var money = prompt('请输入金额(100以内)');
        
    </script>
</body>

</html>